--最近几天要上国外教授的课,所以主要发文章的时间会在晚上,主要给大家概括性的总结一些东西,大家可以当作提纲参考,如果有学习的过程最好能够有记录和大家一起分享(评论或者写文章联系我,给大家发)。
今天晚上给大家总结机器学习里面用到过或者在博客或者论坛见过的向量相似性度量方法。
1.欧氏距离
2.余弦距离 和 修正余弦距离
3.曼哈顿距离
4.切比雪夫距离
5.闵式距离
6.平均距离
7.马氏距离
8.测地距离
9.Mean Character difference
10.Indexing of association
在这些相似性度量里面,最常用的无疑是欧氏距离和余弦距离,我主要对这两个详细说一说。
1.欧氏距离
欧式距离在二维和三维空间中指的就是两点间的直线距离,对应到N维空间的的计算公式也就很好理解,这里借用百度百科截图。
可以理解,这就是差向量的长度。在工程中,欧式距离虽然简单但也常用,是最简单明了衡量两个向量差距的相似性度量方式。
2.余弦距离
但是有些时候,我们关注一个向量更关注的往往不是差距,而是趋势。这个时候用向量的角度差距去衡量往往更合理。举个例子:
如图所示,显然的c向量和b向量在趋势上是更一致的,和a就相差甚远,所以余弦距离衡量相似性也是在一定应用场景下很合理的。
3.修正的余弦距离
有其合理自然大家也会觉得有其不合理,向量长度往往也有其在实际场景下的意义。如下图所示:
如何确定向量c和向量a、b中哪一个相似度更高呢?这时候就引入了修正余弦距离。
参考曾经某博客看到的文章的例子,没有找到链接所以我自己来讲吧。比如三个向量为a=(1,0)b=(5,5)c=(2,3)
d(a, b) = cos(a-(a+b+c)/3, b-(a+b+c/3))
d(a, c) = cos(a-(a+b+c/3, c-(a+b+c/3))
泛化公式:
总结起来就是先平均化,再余弦值。
调整后的余弦相似性,在做图像推荐的时候效果会较前两种有显著提高,建议大家尝试。
其他的方法就算是给大家启发了,我都没有用过,希望大家学习愉快。